<?php
//update_comment.php - ищет все файлы pdf в хранилище
//читает, соответствующие им файлы txt
//обновляет инфо в базе данных согласно txt файлам

//функция для замера времени
function timeMeasure()
{
    list($msec, $sec) = explode(chr(32), microtime());
    return ($sec+$msec);
}

//обновляет запись в базе данных, формирует ответ в html
function update_row(&$project, &$drawing, &$revision, &$part, $checked,
                    $aproved, $comments, $answer_value, $answer_color, &$count) {
    $sql = "UPDATE ".BASE." SET
      comments = '$comments',
      checked = '$checked',
      aproved = '$aproved'
      WHERE
      project = '$project'
      AND drawing = '$drawing'
      AND revision = '$revision'
      AND part = '$part'";

    mysql_query($sql);
    if (mysql_errno () > 0) echo mysql_errno().'  '.mysql_error().'<br/>';
    else {
       $count++;
       echo '<font color="'.$answer_color.'">'.$answer_value.' '.$project.' '.$drawing.' - '.$revision.' - '.$part.'</font><br/>';
    }
}

//запоминаем время старта
$TIMESTART = timeMeasure();

//загружаем функцию поиска файлов
include_once './scan.php';

//подключаемся к базе
include_once './db_connect.php';

//Максимальное время работы скрипта 1 час
set_time_limit(UPD_TIME);

$dbh = mysql_connect(HOST, USER, PSWD) or die("Не могу соединиться с MySQL.");
mysql_select_db(DATABASE) or die("Не могу подключиться к базе.");
$res = mysql_query("SET NAMES utf8");

//перебираем все файлы *.txt в хранилище
$files = scan('|[\d]+\s.*_Rev[\d]{2}_[\d]{2}\.pdf|', "../".STORAGE_PATH);
//print_r($files); echo '<br/>';
//обнуляем счетчики
$com_count = $apr_count = $nocheck_count = 0;
foreach ($files as $txt) {
    //формируем путь к файлу, включая дирректорию
    $filename = $txt['path'].SEPARATOR.str_replace('.pdf', '.txt', $txt['filename']);
    
    //    print_r($txt); echo '<br/>';
        //разбираем имя файла
        list($project,$drawing,$revision,$part) = parse_filename($txt['filename']);
        //проверяем статус ПРОВЕРЕНО (0-нет,1-да)
        
        if (is_file($filename))
            $checked = file_get_contents($filename, NULL, NULL, 0, 1);

        //если есть файл и не проверено или файла нет
        if ( (!is_file($filename)) ||
              ( (is_file($filename)) && ($checked == 0) ) )  
            //формируем запрос для обновления checked
            update_row($project, $drawing, $revision, $part, 0, 0, '', 'NOT CHECKED', 'blue', $nocheck_count);
        
        //если проверено
        else {
            //если есть комментарии
            if (filesize($filename) > 3) {
                //читаем комментарии
                $text = file_get_contents($filename, NULL, NULL, 3);
                //формируем текст комментария
                $text = htmlspecialchars(iconv('WINDOWS-1251', 'UTF-8',$text));
                //формируем запрос для  записи комментария
                update_row($project, $drawing, $revision, $part, 1, 0, $text, 'COMMENTED', 'red', $com_count);
                
            //если нет комментариев
            } else 
                //формируем запрос для обновления aproved
                 update_row($project, $drawing, $revision, $part, 1, 1, '', 'APROVED', 'green', $apr_count);
        }
}

echo $apr_count.' were aproved. Comments for '.$com_count.' commented. '.$nocheck_count.' are not checked <br/>';

//закрываем соединение с базой
mysql_close($dbh);

echo round(timeMeasure()-$TIMESTART, 2).' sec';
?>
